#if 1
/**
 @file sys_at_dot1ae.h

 @date 2020-10-30

 @version v1.0

 The file contains at dot1ae funcation
*/

#ifndef _SYS_AT_DOT1AE_H
#define _SYS_AT_DOT1AE_H
#ifdef __cplusplus
extern "C" {
#endif


enum sys_dot1ae_key_type_e
{
    SYS_DOT1AE_HASH_KEY_TYPE_NONE,
    SYS_DOT1AE_HASH_KEY_TYPE_L2_BASIC,
    SYS_DOT1AE_HASH_KEY_TYPE_MACSEC,
    SYS_DOT1AE_HASH_KEY_TYPE_IPV4,
    SYS_DOT1AE_HASH_KEY_TYPE_IPV6,
    SYS_DOT1AE_HASH_KEY_TYPE_SPI,

    SYS_DOT1AE_HASH_KEY_TYPE_MAX
};
typedef enum sys_dot1ae_key_type_e sys_dot1ae_key_type_t;

enum sys_dot1ae_operation_type_e
{
    SYS_DOT1AE_OP_TYPE_BYPASS,
    SYS_DOT1AE_OP_TYPE_DISCARD,
    SYS_DOT1AE_OP_TYPE_PROCESS
};
typedef enum sys_dot1ae_operation_type_e sys_dot1ae_operation_type_t;

enum sys_dot1ae_key_size_e
{
    SYS_DOT1AE_HASH_KEY_SIZE_1X,
    SYS_DOT1AE_HASH_KEY_SIZE_2X
};
typedef enum sys_dot1ae_key_size_e sys_dot1ae_key_size_t;

enum sys_dot1ae_seg_tag_offset_e
{
	SYS_DOT1AE_SEGTAG_OFFSET_L3_L4_OFFSET,
	SYS_DOT1AE_SEGTAG_OFFSET_L2_OFFSET,
	SYS_DOT1AE_SEGTAG_OFFSET_SINGLE_VLAN,
    SYS_DOT1AE_SEGTAG_OFFSET_DOUBLE_VLAN
};
typedef enum sys_dot1ae_seg_tag_offset_e sys_dot1ae_seg_tag_offset_t;

#define SYS_DOT1AE_INTR_EVENT_NUM_PER_CORE 16

/****************************************************************
 *
 * Header Files
 *
 ***************************************************************/
#include "sys_usw_dot1ae.h"

extern int32
sys_at_dot1ae_add_sec_chan(uint8 lchip, void* p_sc_chan);
extern int32
sys_at_dot1ae_update_sec_chan(uint8 lchip, void* sys_chan, void* sc);

extern int32
 sys_at_dot1ae_get_secyid(uint8 lchip, uint32 chan_id,uint8 dp_id);

extern int32
sys_at_dot1ae_p2mp_sec_chan_check(uint8 lchip, void* sys_chan);

extern int32
sys_at_dot1ae_get_en_sec_chan(uint8 lchip, void* bind_sc);

extern int32
sys_at_dot1ae_en_sec_chan(uint8 lchip, void* bind_sc);

extern int32
sys_at_dot1ae_reset_sec_chan_cfg(uint8 lchip, void* sc_info);


extern int32
sys_at_dot1ae_get_stats(uint8 lchip, uint32  chan_id, void* stats);

extern int32
sys_at_dot1ae_sync_dma_stats(uint8 lchip, void* p_data);

extern int32
sys_at_dot1ae_unbind_sec_chan(uint8 lchip, void* bind_sc);

extern int32
sys_at_dot1ae_set_glb_cfg(uint8 lchip, void* p_glb_cfg);
extern int32
sys_at_dot1ae_get_glb_cfg(uint8 lchip, void* p_glb_cfg);

#ifdef __cplusplus
}
#endif

#endif
#endif

